/**
 * 常量构造方法
 * 可以理解为Java中的单例模式
 * 通过此构造方法获取的对象,在内存中只有一份,可以减少内存开销
 *
 * 有如下几点要求:
 * 1.常量构造方法需要用const关键字修饰
 * 2.const构造函数必须用于成员变量都是final的类
 * 3.实例化时,如果不加const关键字,即使调用的是常量构造方法,获取的对象也不是常量对象
 */

class Container{
  final int weight;
  final int height;

  const Container(this.weight, this.height);
}


void main(){
  Container c1 = Container(10,20);
  Container c2 = Container(10,20);

  print(identical(c1, c2));  // false


  Container c3 = const Container(10,20);
  Container c4 = const Container(10,20);

  print(identical(c3, c4)); // true
}